package com.kehutong.charge.service;

import com.kehutong.charge.entity.ChargeBillCommunity;
import com.kehutong.charge.entity.ChargeBillItems;
import com.kehutong.charge.entity.ChargeBills;
import com.kehutong.charge.service.impl.ChargeBillManageServiceImpl;
import com.kehutong.common.util.Token;
import org.coraframework.inject.ImplementedBy;
import org.coraframework.json.JSONObject;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @program: kht
 * @description: 常规账单服务接口
 * @author: joneron
 * @create: 2021/7/5
 **/
@ImplementedBy(ChargeBillManageServiceImpl.class)
public interface ChargeBillManageService extends BaseService<ChargeBillCommunity>{


    /**
     * 重新生成账单
     * @param jsonObject
     * @return
     */
    Object resetCommunityBill(JSONObject jsonObject, Token token) throws Exception;

    /**
     * 类目账单生成
     * @param entity
     * @return
     */
    Object generateItemBill(ChargeBillCommunity entity) throws Exception;

    /**
     * 作废账单
     * @param jsonObject
     * @return
     */
    Object cancelCommunityBill(JSONObject jsonObject, Token token);



    void pageExport(HttpServletRequest req, HttpServletResponse resp, JSONObject jsonObject);

    /**
     * 手动生成收据PDF文件
     * @param jsonObject
     * @return
     */
    Object receiptPDFSave(JSONObject jsonObject, Token token);

    /**
     * 手动生成缴费单PDF文件
     * @param jsonObject
     * @return
     */
    Object manualPaySave(JSONObject jsonObject);

}
